Skip to content

fix(keyboard): 统一各键盘布局中的滑动气泡状态管理 - #758

Merged
kingzcheung merged 3 commits into
ximeiorg:mainfrom
kingzcheung:main
Aug 29, 2026
Merged

fix(keyboard): 统一各键盘布局中的滑动气泡状态管理#758
kingzcheung merged 3 commits into
ximeiorg:mainfrom
kingzcheung:main

Conversation

@kingzcheung

@kingzcheung kingzcheung commented Aug 29, 2026

Copy link
Copy Markdown
Contributor

将CommonSymbolKeyboardLayout、KeyboardLayout、NumberKeyboardLayout、 StrokeKeyboardLayout和T9KeyboardLayout中的滑动气泡状态管理重构为统一的 SwipeBubbleController实现,避免多个mutableState变量的状态不一致问题, 并添加气泡抬起后短暂滞留的用户体验优化逻辑。

feat(SwipeBubble): 新增滑动气泡控制器支持按压后短暂滞留

实现SwipeBubbleController类封装气泡状态管理逻辑,支持按压气泡抬起后
短暂滞留60毫秒再消失,提升快速连打时的用户体验,同时确保滑动和长按
操作的气泡能够立即响应新的手势操作。

fix(XimeInputMethodService): 修复键盘insets计算重入问题导致的循环叠加

当forceInsetsRecompute方法在执行过程中被重复调用时,可能导致+1dp操作反复叠加, 造成键盘底部被持续垫高的问题(2.7.0用户反馈)。添加insetsRecomputePending标志防止重入, 并在高度重新计算完成后正确重置状态。

概述

简要描述此 PR 的目的和改动内容。

关联 Issue

Closes #(填写关联 issue 号)

改动类型

  • 新功能
  • 功能优化
  • Bug 修复
  • 重构
  • CI / 构建
  • 文档

自测清单

  • 代码编译通过
  • 已运行 ./gradlew test 并通过
  • 已在真机/模拟器上验证

备注

补充说明(如有)。

将CommonSymbolKeyboardLayout、KeyboardLayout、NumberKeyboardLayout、
StrokeKeyboardLayout和T9KeyboardLayout中的滑动气泡状态管理重构为统一的
SwipeBubbleController实现,避免多个mutableState变量的状态不一致问题,
并添加气泡抬起后短暂滞留的用户体验优化逻辑。

feat(SwipeBubble): 新增滑动气泡控制器支持按压后短暂滞留

实现SwipeBubbleController类封装气泡状态管理逻辑,支持按压气泡抬起后
短暂滞留60毫秒再消失,提升快速连打时的用户体验,同时确保滑动和长按
操作的气泡能够立即响应新的手势操作。

fix(XimeInputMethodService): 修复键盘insets计算重入问题导致的循环叠加

当forceInsetsRecompute方法在执行过程中被重复调用时,可能导致+1dp操作反复叠加,
造成键盘底部被持续垫高的问题(2.7.0用户反馈)。添加insetsRecomputePending标志防止重入,
并在高度重新计算完成后正确重置状态。
- 将BubbleHeightDown从36dp增加到40dp
- 将文本大小从14sp增加到16sp
- 将选中状态字体大小从18sp增加到20sp
- 添加粗体文字效果以提高可读性
- 更新librime-lua-deps子模块
尖端完整覆盖按下的按键(与按键同高),宽体锚定按键顶部悬在上方,
全部基于真实按键 bounds 计算,不再用 KeyHeight 估算值——
键盘高度被调大时估算失准,宽体会下沉进按键被手指挡住。
宽体(显示文字的主体)底部对齐按键顶部,悬在按键正上方不被手指遮挡;
尖端从宽体底部向下延伸 pointerHeightPx(≈按键上半部)指示归属键。
@kingzcheung kingzcheung linked an issue Aug 29, 2026 that may be closed by this pull request
@kingzcheung
kingzcheung merged commit 72018d0 into ximeiorg:main Aug 29, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature] 增加一个按键气泡提示的最短显示时间

1 participant